Home electronics are now so popular that people often own multiple devices that they may use on a regular basis. For example, a person might own an Apple iPod Shuffle, an Apple iPhone, an Apple iPad, and an Apple MacBook Pro. These devices can be configured to communicate with each other using wired or wireless connections. Each such device can store a set of software that it can execute to perform desired functionality. Such software can include operating systems and applications, for example.
The applications, operating systems, and other software programs that are stored on a device can be versioned. As time passes, a new version of a program may become available to replace an older version of the same program. The new version might include bug fixes and/or additional or improved features that the old version did not possess. A particular program might pass through a multitude of different versions over its lifetime of usefulness. A successive version number might identify each different version. Higher version numbers are typically indicative of newer, more recent versions.
Although devices can be configured to communicate with each other, allowing programs executing on separate devices to interact with each other, programs that were once compatible with each other might later become incompatible. This can occur if one such program becomes updated to a subsequent version while another such program does not become updated to a subsequent version. The new version of the updated program might not be backwards compatible with the old version of other the program. Under such a scenario, programs might lose the ability that they once possessed to interact with each other.
If one program loses the ability to interact with another program in this manner, the results can be severe. If a particular program's functionality was largely focused on interaction with another program with which it can no longer interact, then that particular program might become relatively useless.
Mechanisms for updating the versions of programs stored on a single device concurrently, so that the versions of these programs are all updated together, theoretically might avoid losses of compatibility between programs that are stored on the same device. However, such mechanisms would not provide a complete solution under circumstances in which programs designed to interact with each other are distributed among separate devices.
A user of multiple devices might not even be aware that a new version of a program on one of his devices is not backwards compatible with an existing version of another program on another of his devices. If the user applies available updates to programs on one of his devices, he might unknowingly cripple the functionality of some or all of the programs on others of his devices.